<?php namespace Home\Controller; 

use Hdphp\Controller\Controller;
use Common\Model\GoodsAttr;
use Common\Model\Goods;
use Common\Model\GoodsList;

//购物车控制器
class CartController extends Controller{

	
    //购物车页面
    public function index(){
    	// 获取购物车所有货品的数据
    	$cartData=Cart::getAllData(); 
    	// sp($cartData); 
    	// 分配数据到页面、
    	View::with('cartData',$cartData);
    	// 显示静态页面
    	View::make();
    }

    // 添加商品到购物车
    public function addCart(){
    	if(IS_AJAX){
    		// 获取规格的gtid
           $gid=Q('post.gid');
           $gtid=Q('post.gtid');
          // sp($gtid);die;
           $num=Q('post.num1');
           // 去掉后面的逗号，
           $gtid=trim($gtid,',');
            // 实例化商品列表、
            $goodListModle=new GoodsList;
            // 查询【查询组合属性和商品ID对应的那条货品信息】
            $goodsListData=$goodListModle->where("combine='{$gtid}' AND goods_gid='{$gid}'")->find();
            // sp($goodsListData);

           // 将字符串转为数组
           $gtid=explode(',',$gtid);
           
           // sp($gtid);
          // 实例化商品表
           $goodsModel=new Goods;
           //  // 查询商品表
            $goodsData=$goodsModel->where("gid=$gid")->find();
           
            	$data=array(
            		'id'=>$goodsData['gid'],
            		'name'=>$goodsData['gname'],
            		'price'=>$goodsData['shopprice'],
            		'num'=>$num,
            		'cartImg'=>$goodsData['pic'],
            		'marketPrice'=>$goodsData['marketprice'],
                'glid'=>$goodsListData['glid'],
                'glnumber'=>$goodsListData['number'],
            		);
           
            // sp($data);
           // 实例化商品属性表
           $goodsAttrModel=new GoodsAttr;
             // 商品属性表和类型属性表关联
           $goodsAttrData=$goodsAttrModel->join('type_attr','type_attr_taid','=','taid')->whereIn('gtid',$gtid)->get();
            // sp($goodsAttrData);
           
          
           // 将查询到的属性名和属性值压入options中
            foreach ($goodsAttrData as $k => $v){
            	$data['options'][]=array(
            			$v['taname']=>$v['gtvalue'],

            		);
            		
            }
          
            sp($data);
            // 将组合好的数据添加到购物车【也就是存到session中】
            Cart::add($data);
            // sp($_SESSION);
            // 清除session
            // session_unset('goods');
            // echo json_encode($goodsData);
            echo json_encode($goodsAttrData);
            exit;
    	}
    }

    // 更新
    public function updateCart(){
         // 获取ajax发送的货品sid以及数量
        $sid=Q('post.sid');
        $num=Q('post.num');
        // sp($sid);
        // sp($num);
        // 组合数组
        $data=array( 
          'sid'=>$sid,
          'num'=>$num,

        ); 
        // 更新商品
        Cart::update($data);
        // 购物车商品价格总计
        $totalPrice=Cart::getTotalPrice();
        // 商品总数量
        $totalNums=Cart::getTotalNums(); 
        // 获取购物车商品所有数据
        $shuju=Cart::getAllData();
        // 将总计，小计，以及总数量压入数组返回给js处理
             $arr=array(
              'totalPrice'=>$totalPrice,         //商品总计
              'totalNums'=>$totalNums,            //商品总数量
              'sub_total'=>$shuju['goods'][$sid]['num']*$shuju['goods'][$sid]['price'],//商品小计【商品数量*商品单价】
          );
        // sp($arr);
        // 返回json数据
        echo json_encode($arr);
        exit; 
    } 


    // 删除
    public function del(){
    	// 获取商品id
    	$goodsId=Q('get.goodsId');
    	// sp($goodsId);
    	// 删除购物车中id对应的那条货品
    	unset($_SESSION['cart']['goods'][$goodsId]);
    	// 获取删除后新的货品数量和货品总价【然后重新存到session中】
    	$_SESSION['cart']['total_rows']=Cart::getTotalNums();
    	$_SESSION['cart']['total']=Cart::getTotalPrice();
    	// 删除成功跳转
    	$this->success('删除成功','Cart/index');
    }
}